package com.sky.annotation;


import com.sky.enumeration.OperationType;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 自定义注解，用于标识某个方法需要进行功能字段自动填充处理
 * 比如频繁的createTime updateTime
 * @Target 注明注解加在哪个位置,ElementType.METHOD指定注解只能加在method方法上面
 */

/***
  ✔*1、自定义注解 AutoFill，用于标识需要进行公共字段自动填充的方法
  *2、自定义切面类 AutoFillAspect，统一拦截加入了 AutoFill 注解的方法，通过反射为公共字段赋值
  *3、在 Mapper 的方法上加入 AutoFill 注解
*/

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)   //固定写法
public @interface AutoFill {
    //数据库操作类型：UPDATE INSERT。OperationType是一个枚举类型
    OperationType value();
}
